package eitwitter.normalization;

import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Decoupe le texte passe en parametre suivant les symboles de ponctuation
 * et ne conserve pas la ponctuation
 * @author AH & PJ
 */
public class SymbolsTokenizer implements Normalizer{

	/** Liste des symboles a supprimer */
	final public static String symbols = ",\\s\\\\/:._\\-?@#\"“”\\[\\]()+&!;=|";
	
	@Override
	public HashMap<String, Integer> normalize(String text) {
		HashMap<String, Integer> tokens = new HashMap<String, Integer>();
		
		// Expression reguliere pour le traitement de la chaine
		Pattern p = Pattern.compile("[" + symbols + "]*([^" + symbols + "]+)");
		Matcher m = p.matcher(text);
		while(m.find()){
			String word = m.group(1).toLowerCase();
			
			if(tokens.containsKey(word)){	
				tokens.put(word, tokens.get(word) + 1);
			} else {
				// Sinon, ajouter
				tokens.put(word, 1);
			}
		}
		
		// Recuperation de la polarite du tweet		
		return tokens;
	}
}
